diff options
Diffstat (limited to 'app/src/routes/assignments/[assignmentId]/+page.server.ts')
-rw-r--r-- | app/src/routes/assignments/[assignmentId]/+page.server.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/src/routes/assignments/[assignmentId]/+page.server.ts b/app/src/routes/assignments/[assignmentId]/+page.server.ts new file mode 100644 index 0000000..566dcd9 --- /dev/null +++ b/app/src/routes/assignments/[assignmentId]/+page.server.ts @@ -0,0 +1,27 @@ +import { getAssignmentAndCemetaryById } from "$lib/server/assignments"; +import type { PageServerLoad } from "./$types"; +import { error, redirect } from "@sveltejs/kit"; + +export const load = (async ({ params, url, locals }) => { + if (!locals.user) { + redirect(303, `/login?redirectTo=${encodeURIComponent(url.toString())}`); + } + + const { assignment, cemetaryPlot } = await getAssignmentAndCemetaryById( + locals.dbConn, + +params.assignmentId, + ); + if (!assignment) { + return error(404, `Cemetary plot with id ${params.assignmentId} not found`); + } + console.debug("Found assignment: ", assignment); + if (assignment.gardenerId !== locals.user.id) { + return error(403, "This assignment isn't for you!"); + } + + return { + user: locals.user, + assignment, + cemetaryPlot, + }; +}) satisfies PageServerLoad; |